package RICM.Repository.source;

import java.io.File;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

public class Annuaire extends UnicastRemoteObject  implements _Annuaire{
	private HashMap<String, Numero> annuaireTel;
	
	public Annuaire(String fichier) throws RemoteException{
		annuaireTel = new HashMap<String, Numero>();
		parser(fichier);
	}

	@Override
	public Numero get(String abonne) throws RemoteException{
		return annuaireTel.get(abonne);
	}
	
	private void parser(String fichier){
		SAXBuilder sxb = new SAXBuilder();
		Document document;
		Element racine;
		try {
			document = sxb.build(new File(fichier));
			racine = document.getRootElement();
			
			List listeTel = racine.getChildren("Telephone");

			Iterator i = listeTel.iterator();
			while(i.hasNext()){
				Element courant = (Element)i.next();
				Numero n = new Numero(courant.getAttributeValue("numero"));
				annuaireTel.put(courant.getAttributeValue("name"), n);
			}
		}catch(Exception e){
			System.err.println("Annuaire : Impossible de charger le fichier : "+fichier);
		}
	}
}
